Method and Apparatus for Modeling of GNSS Pseudorange Measurements for Interpolation, Extrapolation, Reduction of Measurement Errors, and Data Compression

ABSTRACT

Polynomial regression models are used to reduce errors in measurements of pseudorange between a GNSS satellite and a receiving station; for data compression by replacing a large number of measurements with a small number of coefficients of the model polynomial, optionally combined with modeling residuals; for extrapolating usefully accurate estimates of future range between the GNSS satellite and the receiving station; and for providing usefully accurate estimates of future coefficient values of the polynomial regression models themselves.

FIELD OF THE INVENTION

The present application relates generally to reduction of DifferentialGNSS message payload by mathematical modeling of pseudorange measurementhistories observed at GNSS Reference Stations.

BACKGROUND OF THE INVENTION

Global Navigation Satellite Systems (GNSS) have grown beyond GPS andGLONASS with the deployment of new designs including the Japanese QZSS,European Galileo, and Chinese COMPASS systems, all of which follow thesame fundamental methods of operation and position determination basedon RF radio wave ranging techniques. The use and availability of variouscorrections to aid in the accuracy obtained from a satellite in a GNSShave grown as well.

To improve the accuracy obtainable for positioning and navigation datausing a GNSS receiver, various techniques are employed. Some of theseinvolve algorithmic improvements internal to the devices, others involveaiding the device with externally provided information. At a broad levelthese latter items fall onto three areas: corrected or improved orbitalinformation, clock drift information, and localized propagation effectsfrom the ionosphere and troposphere.

To overcome the localized propagation effects specifically, manykinematic or stationary positioning applications make use of one or moreadditional GNSS receivers. In this method, a reference receiver placedat a well-known location, referred to as the reference station, receivesthe same satellite signals as a remote receiver referred to as therover. The measurement information obtained by the reference station isthen sent to the rover, and used, along with knowledge of the actualposition of the reference station, to compute the measurement errorscommon to both the reference station and the rover. This processtypically occurs in real time or near real time, but can also occur inpost-processing, where the data may be stored and dealt with whenconvenient. And multiple rovers may connect to any given referencestation via a variety of communications devices (both one way and twoway).

By taking the difference between signals received both at the referencestation and at the remote rover, common-mode errors are effectivelyeliminated. This facilitates an accurate determination of the rover'scoordinates relative to the reference station's coordinates. When thereference station's coordinates are kinematic (such as the case ofnearby operating rovers/vehicles exchanging data), this furtherfacilitates an accurate determination of position of each vehiclerelative to the other.

This general technique of differencing signals is known in the art asdifferential GPS (DGPS) or differential GNSS (DGNSS). When DGPS/DGNSSpositioning utilizing one or more carrier phases is done in real timewhile the rover is semi-static or in motion, it is most often referredto as Real-Time Kinematic (RTK) positioning.

A common feature of all these techniques involves sending eithercorrection or raw measurement data from the reference station to a GNSSrover receiver in the field. A constant stream of this information isthen used by the rover to perform pseudo-range adjustments, doubledifferencing, and/or various other techniques known to those skilled inthe art to refine the positioning and navigation data calculated by therover receiver. Loss of, or interruption of, this data stream can inturn be very disruptive to the rover unit. This commonly occurs whenvarious wireless transmissions systems are used. Such systems sufferfrom the same RF propagation issues as the GNSS signals and may beblocked or suffer from corrupting effects of multipath on the receivedsignal.

The rate of sending such corrections varies with the rover populationand the capacity of the delivery media. A variety of delivery media havebeen successfully used over the years, including dedicated radio links,commercial broadcasting, government operated broadcasting, cellulartechnologies, paging, Wifi, DSRC, and geostationary and LEO satellitelinks. A common update rate is at 1 Hz, although faster rates are usedwhen there is need. Lower update rates of 5 to 15 seconds are alsofound, typically due to limits of the transmission technology. In theUSCG NDGPS system, data rates of 50, 100, or 200 bits per second limitboth the signal content and the message repetition rates (5 to 10seconds between updates). In many commercial systems a combination ofcompression and adaptive scheduling is used to conserve bandwidth. Withthe advance of widespread TCP/IP connections over wireless and thegrowth in NTRIP sites, access to many reference stations can be obtainedover the Internet at locations well beyond their effective serviceareas.

There may be a dozen or more GNSS satellites simultaneously in viewabove the horizon at a given location and time. The general requirementis to provide differential corrections for all signals of each trackedsatellite (both code and carrier for L1, L2, L5, and beyond in newer GNSsystems). In some applications this may be relaxed if the body of roverdevices to be supported does not, or will not, track a given signal ofinterest. Because the reference station cannot generally know whichsatellites are in view of each individual rover at any instant in time,it is customary to send information covering the entire sky down to arelatively low elevation mask. As the number of active GNSS satellitesdeployed continues to grow with the continued deployment of new systemslike the European Galileo and the Chinese COMPASS, the bandwidthrequired to exchange all data necessary for differential correctionswill continue to increase as well. Data rates of 15 kbs or more arerequired today to convey this information for GPS and GLONASSsatellites, and even this can be prohibitive and problematic for variousreasons.

The problem addressed herein is to generate and transmit the essentialerror correction information to the rover devices without usingexcessive bandwidth or being subject to immediate degrading when lossand corruption of one or more messages in a sequence occurs. There isalso a general need for a method that can accommodate variations inupdate rates and which can allow the rover itself to select the exactpoint in time for which suitable data is needed.

SUMMARY OF THE INVENTION

Accordingly, an apparatus includes a processor and a computer readablestorage medium accessible to the processor and bearing instructionswhich when executed by the processor cause the processor to undertakelogic that includes establishing an observation set of plural pastpseudoranges and respective past times between first and second objectsto establish past range/time pairs. The processor also establishes alookahead set of plural predicted future range estimates between thefirst and second objects and respective future times, and using a curvefitting routine, the past range/time pairs and future range/time pairsare described at least in part by a mathematical model whosecoefficients are produced by the curve fitting routine. The coefficientsare output to a third object, which receives the same satellite positionsignals at its location as are received by the second object at itslocation, to enable the third object to correct errors in pseudorangemeasurements that are common to both the second object and the thirdobject.

“Pseudorange” may refer to both “code” and “carrier” (or “phase”)pseudoranges. Code pseudoranges are derived from explicittime-of-transmit embedded (coded) in the messages sent by the GNSStransmitter to the receiver, from which, using a known value ofspeed-of-light, propagation distance may be determined. Carrierpseudoranges, on the other hand, are derived the phase shift observed inthe broadcast carrier wave as it propagates between the GNSS transmitterand the receiver, from which, using known values of carrier frequency orwavelength and speed-of-light, the propagation time or distance may bederived.

In some examples, a latest time in the set of past pseudoranges is priorto an earliest time in the set of predicted future ranges such that theset of past pseudoranges is temporally separated from the set ofpredicted future ranges by a separation period. In example embodiments,ranges in the past range/time pairs described by the model are measuredranges, and the instructions when executed by the processor cause theprocessor to output, with the coefficients, a set of residual valueseach representing a respective difference between a measured range at anassociated time and an evaluated range at the associated time of themeasured range, the evaluated range being a range output by evaluationof the model represented by the coefficients. The curve fitting routinemay implement a polynomial regression model that does not require amodel response to pass through measurement range/time pairs. In anexample implementation, the second object is fixed at a referencelocation, the first object is an orbiting satellite transmitting thesatellite position signals, and the third object is mobile.

In another aspect, an apparatus includes a processor and a computerreadable storage medium accessible to the processor and bearinginstructions which when executed by the processor cause the processorto, using a history of plural past distances between two objects and apredictable history of plural future distances between the objects,generate a model of the past distances and future distances. Theprocessor outputs the coefficients, but not the distances from whichthey were derived, to a receiver, wherein the distances can bereconstructed from the coefficients.

In another aspect, a method includes establishing a set of measured pastrelationships between first and second objects and establishing a set ofestimated future relationships between the first and second objects. Themethod includes, using the past and future relationships, deriving anumerical model describing the past and future relationships and sendingan output of the numerical model to a third object for applicationthereby to correct a value in the third object.

In another aspect, a method is disclosed by which a mathematical modelis derived from a time history of past and present values of a distancebetween two objects combined with a time history of estimates of futurevalues of the distance between said two objects. The method includesrecording a plurality of measurements of distances between the twoobjects and times at which the distances occur and storing themeasurements and measurement times in a memory device. The method alsoincludes creating a plurality of estimates of future distances betweenthe two objects and times at which the estimates are expected to occur,and storing the estimates and times in a memory device. A mathematicalmodel is fit to the plurality of measurements of distances and theplurality of estimates of future distances, together treated as a singlecomposite time history of distance between the two objects withoutregard for whether individual distances are measured or estimated.

In example embodiments of this last aspect, a first one of the twoobjects is designated as a transmitting device, and a second one of thetwo objects is designated as a receiving device. The measurements ofdistances between the transmitting device and the receiving device, andthe times at which the measurements occur, are derived from one or moresignals transmitted from the transmitting device to the receivingdevice. The transmitting device may also function as a receiving device,and the receiving device may also function as a transmitting device suchthat at least two signals are mutually exchanged, at least one from eachof the transmitting device and the receiving device to the other.

In examples of this latter aspect the transmitting device is a GlobalNavigation Satellite and the receiving device is a Global NavigationSatellite System receiver, and the signals are Global NavigationSatellite System modulated radio frequency signals. If desired, thereceiving device can be at a fixed and precisely-known location on ornear the surface of the earth, or the receiving device can be stationaryat an unknown location, or the receiving device can be mobile. Thetransmitting device may be a Global Navigation Satellite, the receivingdevice may be a Global Navigation Satellite System receiver, the signalsmay be Global Navigation Satellite System modulated radio frequencysignals, and the estimates of future distances between the two objectsand times at which they are expected to occur are derived from one ormore of the following. They may be derived from ephemeris dataassociated with the Global Navigation Satellite, regularly broadcast byeach Global Navigation Satellite, or precise orbital parametersassociated with the Global Navigation Satellite, obtained from alternatesources.

In further non-limiting examples of this latter aspect, either or bothof the transmitting device and the receiving device can be an orbitingsatellite. The estimates of future distances between the transmittingdevice and the receiving device, and times at which they are expected tooccur, can be derived from the known nominal orbital parameters of saidsatellite(s). Or, the estimates of future distances between thetransmitting device and the receiving device, and times at which theyare expected to occur, can be derived from similar orbital tracks foundin historical data and used in pattern-matching. Yet again, theestimates of future distances between the transmitting device and thereceiving device, and times at which they are expected to occur, can bederived by repeating past data, suitably aligned with the known orbitalperiod(s).

Furthermore, the estimates of future distances between the two objectsand times at which they are expected to occur may be derived fromknowledge of the kinematics of one or both of the objects, or knowledgeof periodicities in the motion of one or both of the objects, orknowledge of symmetries in the motion of one or both of the objects, orknowledge of trends in the motion of one or both of the objects, orknowledge of constraints upon the motion or position of one or both ofthe objects, or in which the estimates of future distances between thetwo objects are assigned constant values at any times because bothobjects are known to be at fixed locations.

In some implementations, a subset of contiguous distance and timemeasurements, designated a “window” of measurements and measurementtimes, is utilized. And/or, a subset of contiguous distance and timeestimates, designated a “window” of estimates and expected times, can beutilized. The windows can “slide” over the measurements and/orestimates, one at a time, such that as time advances and newermeasurements or estimates are incorporated, nominally the same number ofmeasurements and/or estimates are spanned by the windows. Or, thewindows can “hop” over the measurements and/or estimates, several at atime, such that as time advances and newer measurements or estimates areincorporated, nominally the same number of measurements and/or estimatesare spanned by the windows. A temporal gap may exist between a latestmeasured time and an earliest future expected time for the distancesbetween the objects.

In non-limiting examples the model can be configured as a polynomial orratio of polynomials, or a spline, or Fourier coefficients, or sphericalharmonic coefficients, or any other parametric mathematical model. Themodel may be derived by means including, but not limited to, leastsquares fit, or trigonometric methods, or Fourier analysis, or minimaxmethods, or spherical harmonic analysis, or linear predictor. The modelcan be subsequently evaluated in order to estimate distance values attimes at which distance measurements exist, but the distancemeasurements are corrupted by errors, wherein the model is used toreduce the errors, with the reduction of errors being improved by theinclusion of the estimates of future distances in the formulation of themodel. Or, arbitrary times in-between distance measurements can be usedand the model used to interpolate between the measurements, with theinterpolation being improved by the inclusion of the estimates of futuredistances in the formulation of the model. Or when times at whichdistance estimates exist, but accuracy of the distance estimates issuspect, the model can be used to improve accuracy of the estimates. Yetagain, arbitrary times in-between distance estimates can be used tointerpolate between the estimates, or arbitrary times within a gapbetween the distance measurements and the distance estimates can be usedto extrapolate the distance measurements forward in time, with theextrapolation being improved by the inclusion of the estimates of futuredistances in the formulation of the model. The model is well-behaved inone example because it is interpolating between measured data andestimated data instead of only extrapolating measured data.

In another aspect, a method by which data compression may be achievedincludes recording a plurality of measurements of a quantity and timesat which said measurements occur and storing said measurements andmeasurement times in a memory device. The method includes creating aplurality of estimates of future values of the quantity and times atwhich the estimates are expected to occur and storing the estimates andtimes in a memory device. Also, the method can include fitting amathematical model to the measurements and estimates, together treatedas a single composite time history of the quantity without regard forwhether individual quantity values are measured or estimated. Insituations requiring only an approximation of the measured data themethod can include storing, transmitting, or otherwise utilizingcoefficients or parameters of the mathematical model instead of themeasured data such that a representation of the measured data may bederived by means of an evaluation of the mathematical model at theassociated measurement times. The representation is improved by theinclusion of the estimates of future values in the formulation of themodel, or in at least one situation requiring an interpolation or anextrapolation of the measured data, storing, transmitting, or otherwiseutilizing coefficients or parameters of the mathematical model such thata representation of the measured data may be derived by an evaluation ofthe model at arbitrary measurement times, with the representation beingimproved by the inclusion of the estimates of future values in theformulation of the model. Yet again, in a situation requiring an exactrepresentation of the measurements a mathematical model is derivedrelative to any appropriate time in the past or present and used to formresidual values, each of which represents a difference between ameasured value and a result of an evaluation of the model at anassociated measurement time. The coefficients, updated at an appropriaterate, are stored, transmitted, or otherwise used along with eachresidual value at an appropriate rate such that a result of anevaluation of the mathematical model represented by the coefficients orparameters at a measurement time, added to the residual value, forms alossless representation of an associated measurement.

In another aspect, a method is disclosed by which derivatives of a timehistory of a quantity may be estimated and extrapolated. The methodincludes recording a plurality of measurements of a quantity and timesat which the measurements occur and storing the measurements andmeasurement times in a memory device. The method also includes creatinga plurality of estimates of future values of the quantity and times atwhich they are expected to occur and storing the estimates and times ina memory device, and then fitting a model to the measurements andestimates, together treated as a single composite time history of thequantity without regard for whether individual quantity values aremeasured or estimated. The method may further include estimation ofderivatives of the quantity with respect to time by differentiating themodel polynomial with respect to time, up to any desired order of thederivative, and evaluating the differentiated polynomial at any specifictime of interest.

In an exemplary implementation of the latter two aspects above, datacompression can be achieved by using a single model to create dataelements in a single message. By virtue of the abilities of presentprinciples to represent the pseudorange measurements and to computederivatives of the pseudorange time histories, at any desired instant intime, a single message created by present principles can replacemultiple Radio Technical Commission For Maritime Services (RTCM)messages used heretofore.

Furthermore, by virtue of present principles to compress data, this canbe accomplished with a message that is smaller than the ensemble of RTCMmessages heretofore required to convey similar information. Thus,instead of periodically broadcasting multiple sets of RTCM messages,only the model coefficients (and, optionally, the residual differencesbetween the measured and modeled range values) need be broadcast, fromwhich the receiver may reconstruct the information contained in thespecific message types that it requires.

In another aspect, a method is disclosed by which a data model may beconstructed such that said model can predict future configurations ofitself. The method includes recording a plurality of measurements of aquantity and times at which the measurements occur and storing themeasurements and measurement times in a memory device. The method alsoincludes creating a plurality of estimates of future values of thequantity and times at which the estimates are expected to occur andstoring the estimates and times in a memory device, and fitting a modelto the measurements and estimates, together treated as a singlecomposite time history of the quantity without regard for whetherindividual quantity values are measured or estimated. The method thenincludes configuring the model as a State Model, in which somecombination of coefficients of the model is a representation of a slopeof another coefficient in the model at a specific time of interest, andthus a set of all coefficients is a representation of a state of themodel. In the preferred aspect, the model is configured as a regressionpolynomial, and each coefficient of the polynomial is representative ofthe slope of another coefficient of the model.

The state of the model at a current time can be used to estimate thestate of the model at a future time by integrating a set of StateEquations. The estimates of future state are improved by the inclusionof the estimates of future values in the formulation of the model. Inthe preferred aspect, integration of State Equations may incorporate anestimate of the slope of the coefficient associated with a highest-orderterm of the model polynomial, at the current time. The estimate of theslope of the highest-order polynomial coefficient may be determined bymeans including, but not limited to, evaluation of past values of thehighest-order polynomial coefficient, by means of trend line analysis,or polynomial modeling, or trigonometric modeling, or the like.

Note that in this last aspect, data compression may be achieved bystoring, transmitting, or otherwise utilizing the estimate of the slopeof the highest-order polynomial coefficient, and incorporating the slopeestimate in subsequent integration of the State Equations to update theentire set of model coefficients, instead of storing, transmitting, orotherwise utilizing the entire set of model coefficients. Thus, insteadof periodically broadcasting the entire set of model coefficients, thedata is compressed even further by broadcasting only the estimated slopeof the highest-order model coefficient, and allow the receiver tointegrate the State Equations itself.

The details of the present invention, both as to its structure andoperation, can best be understood in reference to the accompanyingdrawings, in which like reference numerals refer to like parts, and inwhich:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram showing the relative positions of theTransmitting Device (in orbit) and the Receiving Device (on Earth), andthe signal that passes between them;

FIG. 2 is a schematic diagram showing how both the Transmitting Deviceand the Receiving Device move during the time required for the signal topropagate between them, and the configuration of the resultantpseudorange measurement;

FIG. 3 is a schematic diagram showing how the Observation Window spans asubset of the available pseudorange measurements;

FIG. 4 is a schematic diagram showing the relative positions of theTransmitting Device (in orbit) and the Receiving Device (on Earth) at afuture moment in time, and the configuration of the resultant LookaheadRange Estimate;

FIG. 5 is a schematic diagram showing how the Lookahead Window spans asubset of the available Lookahead Range Estimates;

FIGS. 6 and 7 are schematic diagrams showing the relative temporalpositions of the Observation Window, Lookahead Gap, Lookahead Window,and Range vs Time Pairs;

FIG. 8 is a graph showing an exemplary time history of a highest-orderpolynomial coefficient, and some local regression-line fits to that timehistory;

FIG. 9 is a block diagram of an example system according to presentprinciples; and

FIGS. 10-12 are flow charts of example logic according to presentprinciples.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

In brief overview, device built in accordance with present principles iscapable of determining or receiving a plurality of measured pseudorangevalues between an orbiting GNSS satellite and a receiving device at afixed location on Earth, and associated time values, and of storing thepseudorange and associated time values in a suitable memory device. Thepreferred embodiment device is further capable of determining orreceiving a plurality of estimated range values between theaforementioned GNSS satellite and receiving device at future timevalues, using ephemeris data broadcast by said GNSS satellite or similarorbital parameters obtained from other sources, and mathematicallyprojected into the future, and of storing the estimated range andassociated time values in a suitable memory device. The preferredembodiment device is further capable of computing polynomial regressionmodels describing time histories of ranges between the aforementionedGNSS satellite and receiving device, using combinations of theaforementioned stored measured pseudorange data and stored estimatedfuture range data. The polynomial models advantageously smooth data,leading to a reduction of measurement errors, and interpolate in-betweenmeasurement points. Furthermore, by including estimated future rangedata into the computations used to create models, the models can alsoextrapolate into the future with far greater accuracy and numericalstability than has heretofore been achieved.

The preferred embodiment device can also effect data compression byreplacing the time histories of range with the coefficients of thepolynomial regression models derived from them, optionally accompaniedby the modeling residuals, which are sent to a roving device instead ofthe underlying raw data. Using the polynomial regression models andresiduals a representation of the time histories of range can beconstructed as needed. Future values of the coefficients of thepolynomial regression models can be computed by means of simpleassumptions applied to the mathematical integration of the currentcoefficients of the polynomial regression models. Thus, the preferredembodiment device, by means of polynomial regression models, is capableof reducing errors in measurements of pseudorange between a GNSSsatellite and receiving station for observations in the past andpresent, is capable of effective data compression by replacing a largenumber of pseudorange measurements with a small number of coefficientsof a polynomial, optionally combined with modeling residuals, is capableof providing usefully accurate estimates of future ranges between theGNSS satellite and receiving station, and is capable of providingusefully accurate estimates of future coefficient values in thepolynomial regression models.

Referring initially to FIG. 1, a position signal 1 is transmitted by aTransmitting Device 2 such as a navigational satellite and received by aReceiving Device 3. As indicated in FIG. 2, both the Transmitting Device2 and Receiving Device 3 move during the time required for the Signal 1to propagate between them, and this movement must be mathematicallycompensated based upon knowledge of the motions of Transmitting Device2, Receiving Device 3, and the propagation velocity of Signal 1. TheSignal 1 may thus be any signal from which the distance betweenTransmitting Device 2 and Receiving Device 3 may be ascertained becausethe propagation velocity is known or measured, precise Time-of-Receipt 4is measured by Receiving Device 3, and (a) precise Time-of-Transmit 5 isembedded in Signal 1; or (b) precise Time-of-Transmit 5 is known becauseit follows a schedule; or (c) precise Time-of-Transmit 5 is conveyed toReceiving Device 3 by means of some ancillary signal or by other means,or because the propagation velocity and carrier frequency are known ormeasured, and carrier phase shift between the Transmitting Device 2 andthe Receiving Device 3 is measured or otherwise determined.

In one preferred embodiment, Signal 1 is a Global Navigation SatelliteSystem (GNSS) modulated radio frequency (RF) signal, as broadcast fromGPS, GLONASS, GALILEO, QZSS satellites, or the like; Transmitting Device2 is a GNSS satellite; and Receiving Device 3 is a GNSS receiver in aGNSS reference station, at a fixed and precisely-measured location onthe surface of the earth. However, persons skilled in the art willrecognize that nothing limits the implementation to the preferredembodiment. The Signal 1 may be any signal with predictable ormeasurable propagation characteristics, including but not limited toelectromagnetic (EM) signals such as radio, television, RADAR, andLIDAR, and acoustic signals such as SONAR; the Transmitting Device 2 canbe any device capable of transmitting Signal 1, and might be mobile asin the preferred embodiment, or fixed; the Receiving Device 3 can be anydevice capable of receiving Signal 1, and might be fixed as in thepreferred embodiment, or mobile. Furthermore, both of the Devices 2 and3 can serve dual functions as transmitters and receivers, resulting intwo independent Signals 1 that are mutually exchanged, as in, forexample, the satellites used in the Gravity Recovery And ClimateExperiment (GRACE) project, or in vehicles such as automobiles, trucks,motorcycles, ships, or aircraft, as part of a vehicle-to-vehicle (V2V)collision-avoidance system or similar application.

The Pseudorange 6 is computed in Receiving Device 3, or in ancillarycomputational equipment such as a general purpose computer or othersuitable device as described further below in reference to FIG. 9, usingthe Signal 1 and the associated Time-of-Transmit 5 and Time-of-Receipt 4of the signal, and other information such as knowledge of the rate ofrotation of Earth, by means known in the art. The Pseudorange 6 isalmost always corrupted by various errors, some random and somedeterministic. In the GNSS preferred embodiment, for example, eachcalculated value of Pseudorange 6 may be corrupted by measurement errorsdue to imprecise knowledge of time (on the transmit and receive endsboth), perturbations in the speed-of-light through the ionosphere,troposphere, or other layers of the atmosphere, multipath, and others.

As shown in FIG. 3, a plurality of such measurements of Pseudorange 6values and the associated times at which they occurred, designatedMeasurement Times 7 and derived by appropriate means fromTime-of-Receipt 4 and Time-of-Transmit 5, can be recorded over a span oftime designated Observation Window 8, as indicated in FIG. 3, and storedin a suitable memory device such as computer memory, hard drive, orsimilar. As time passes, the Observation Window 8 “slides” over thePseudorange 6 measurements such that each Observation Window 8 nominallyspans the same number of measurements, and as each new measurement isadded to one end of the Observation Window 8, the corresponding oldestmeasurement is removed from the other end. Thus there is a very largeoverlap between each Observation Window 8 and many of its predecessors.The duration of Observation Window 8, the number of measurementscontained therein, the time between measurements, the need (or lackthereof) for constant time between measurements, and similar parameters,are set as appropriate for the particular mathematical model in use. Inone preferred embodiment, the Observation Window 8 spans approximately 3to 4 minutes' data, nominal time between measurements ranges from 1 to15 seconds, depending upon availability, time between measurements mayvary, and the “newest” measurement contained within the ObservationWindow 8 corresponds to the “current” time. In addition, depending uponspecific goals and needs, the Observation Window 8 may be made to “hop”instead of “slide”, which simply means that the models corresponding tosome temporal positions of the Observation Window 8 may be ignored andare therefore not computed.

According to novel present principles and now referring to FIG. 4, aplurality of estimated future values of the distance between theTransmitting Device 2 and the Receiving Device 3 are used and aredesignated as Lookahead Range Estimates 9, as well as their associatedexpected times-of-occurrence, designated Lookahead Times 10. Theseestimates are computed over a span of time designated as LookaheadWindow 11, shown in FIG. 5. The duration of Lookahead Window 11, thenumber of range estimates contained therein, the temporal spacingbetween the estimates, and similar estimation parameters, are set asappropriate for the particular mathematical model in use. In onepreferred embodiment, Lookahead Window 11 spans approximately 3 to 4minutes' data, with the interval between estimates set to the same valueas the interval between measurements in the associated ObservationWindow 8. As time passes, the Lookahead Window 11 “slides” or “hops”over Lookahead Range Estimates 9 in a manner similar, though notnecessarily identical, to the manner in which Observation Window 8“slides” or “hops” over the Pseudoranges 6.

A new model may be computed at each new position of Observation Window8/Lookahead Window 11, as they slide or hop over the data.

In the preferred embodiment, Lookahead Range Estimates 9 are derived,using conventional computational equipment such as general purposecomputers or other suitable devices, from ephemeris data obtained fromthe signals regularly broadcast by each GNSS satellite or from orbitalparameters available from other sources. The ephemerides or orbitalparameters contain sufficient information to predict a satellite'sestimated position in an Earth-referenced coordinate system many hoursinto the future, and satellite position estimates obtained in thismanner, combined with the Receiving Device 3's knowledge of its ownposition on Earth, and knowledge of Earth's rotation rate, aresufficient to compute any desired number of Lookahead Range Estimates 9at any desired Lookahead Times 10 up to several hours in the future.

Persons skilled in the art will recognize that many other methods bywhich Lookahead Range Estimates 9 can be determined exist, including butnot limited to, in the case where one or both of Transmitting Device 2and Receiving Device 3 are orbiting satellites: use of historical datato find similar orbital tracks for use in pattern-matching; repeatingpast data, suitably aligned with the known orbital period(s); or basicnumerical techniques for extrapolation, curve-fitting, or the like;along with the known rotation rate of the Earth, if necessary, tocompute estimates of relative positions and/or distances. In cases notnecessarily involving orbiting satellites, any knowledge of thekinematics of the system and its constituents, or of periodicities,symmetries, or similar trends in the system dynamics, that can be usedto estimate future positions of Transmitting Device 2 and/or ofReceiving Device 3 can be used to estimate the future relative distancesbetween them.

The Observation Window 8 and Lookahead Window 11 are oriented in time asindicated in FIG. 6. As shown, it is not necessary that Lookahead Window11 be temporally adjacent to Observation Window 8; in fact significantbenefit can be derived from the presence of a temporal gap between them,designated Lookahead Gap 12 in FIG. 6. In one preferred embodiment,Lookahead Gap 12 is set to approximately 30 minutes.

The measured Pseudorange 6 values and their associated Measurement Times7 (spanned by Observation Window 8), together with the estimatedLookahead Range Estimates 9 and their associated Lookahead Times 10(spanned by Lookahead Window 11), form a set of “range vs time” valuepairs, designated Range vs Time Pairs 13 in FIG. 7, from which anumerical model is derived. The fact that some of the range values aremeasured and others are estimated does not affect the model. Examplemodels that may be used include polynomial and trigonometric models, aspline fit, a Fourier series fit, and a minimax fit. Persons skilled inthe art will recognize that many other types of models can be formulatedfrom these same data, including but not limited to models based uponspherical harmonics, linear predictors, and the like.

One preferred embodiment uses polynomial regression models formulated asfollows:

Each individual Range vs Time pair 13 element is assumed to be describedby a polynomial of the form in equation 1:

Range(t)=C _(n)((t−t ₀)/t _(n))^(n) +C _(n-1)((t−t ₀)/t _(n))^(n-1) + .. . +C ₂((t−t ₀)/t _(n))² +C ₁((t−t ₀)/t _(n))+C ₀  (eq. 1)

where

-   -   Range(t) is the measured or estimated Range (Pseudorange 6 or        Lookahead Range Estimate 9, respectively) uniquely associated        with time t;    -   t is the time (Measurement Time 7 or Lookahead Time 10, as        appropriate) uniquely associated with Range(t);    -   to and to are optional “scaling” parameters used to reduce        numerical overflow and underflow problems in the computation of        the models, determined empirically, e.g., using principles        outlined for other purposes in Michaelsen Online Course Notes        for Geography 210B, Environmental Data Analysis, Winter 2007,        Lecture 18: “Polynomial Regression Models in one Variable”,        http://www/geog/ucsb.edu/˜joel/g210_w07/lecture        notes/lect18/oh07_18_1.h tml: “numerical overflow and underflow        problems can be reduced by scaling”, incorporated herein by        reference;    -   C_(n) . . . C₀ are the coefficients of the polynomial regression        model;    -   n is the model order, determined empirically;    -   n, n−1, . . . are exponents in the polynomial regression model.

After each pair element of Range vs Time pair 13 is entered separatelyinto equation 1, the result is a set of simultaneous equations,expressed in matrix form in equation 2:

$\begin{matrix}{\begin{bmatrix}{{Pseudorange}( {t - m} )} \\{{Pseudorange}( {t - m + 1} )} \\{{Pseudorange}( {t - m + 2} )} \\\vdots \\{{Pseudorange}(t)} \\{{LookaheadRange}( {t + g} )} \\{{LookaheadRange}( {t + g + 1} )} \\{{LookaheadRange}( {t + g + 2} )} \\\vdots \\{{LookaheadRange}( {t + g + m} )}\end{bmatrix} = {\quad{\begin{bmatrix}( \frac{t - t_{0} - m}{t_{n}} )^{n} & ( \frac{t - t_{0} - m}{t_{n}} )^{n - 1} & \cdots & ( \frac{t - t_{0} - m}{t_{n}} )^{2} & ( \frac{t - t_{0} - m}{t_{n}} ) & 1 \\( \frac{t - t_{0} - m + 1}{t_{n}} )^{n} & ( \frac{t - t_{0} - m + 1}{t_{n}} )^{n - 1} & \cdots & ( \frac{t - t_{0} - m + 1}{t_{n}} )^{2} & ( \frac{t - t_{0} - m + 1}{t_{n}} ) & 1 \\( \frac{t - t_{0} - m + 2}{t_{n}} )^{n} & ( \frac{t - t_{0} - m + 2}{t_{n}} )^{n - 1} & \cdots & ( \frac{t - t_{0} - m + 2}{t_{n}} )^{2} & ( \frac{t - t_{0} - m + 1}{t_{n}} ) & 1 \\\vdots & \vdots & \; & \vdots & \vdots & \vdots \\( \frac{t - t_{0}}{t_{n}} )^{n} & ( \frac{t - t_{0}}{t_{n}} )^{n - 1} & \cdots & ( \frac{t - t_{0}}{t_{n}} )^{2} & ( \frac{t - t_{0}}{t_{n}} ) & 1 \\( \frac{t - t_{0} + g}{t_{n}} )^{n} & ( \frac{t - t_{0} + g}{t_{n}} )^{n - 1} & \cdots & ( \frac{t - t_{0} + g}{t_{n}} )^{2} & ( \frac{t - t_{0} + g}{t_{n}} ) & 1 \\( \frac{t - t_{0} + g + 1}{t_{n}} )^{n} & ( \frac{t - t_{0} + g + 1}{t_{n}} )^{n - 1} & \cdots & ( \frac{t - t_{0} + g + 1}{t_{n}} )^{2} & ( \frac{t - t_{0} + g + 1}{t_{n}} ) & 1 \\( \frac{t - t_{0} + g + 2}{t_{n}} )^{n} & ( \frac{t - t_{0} + g + 2}{t_{n}} )^{n - 1} & \cdots & ( \frac{t - t_{0} + g + 1}{t_{n}} )^{2} & ( \frac{t - t_{0} + g + 1}{t_{n}} ) & 1 \\\vdots & \vdots & \; & \vdots & \vdots & \vdots \\( \frac{t - t_{0} + g + m}{t_{n}} )^{n} & ( \frac{t - t_{0} + g + m}{t_{n}} )^{n - 1} & \cdots & ( \frac{t - t_{0} + g + m}{t_{n}} )^{2} & ( \frac{t - t_{0} + g + m}{t_{n}} ) & 1\end{bmatrix}\begin{bmatrix}C_{n} \\C_{n - 1} \\\vdots \\C_{2} \\C_{1} \\C_{0}\end{bmatrix}}}} & ( {{eq}.\mspace{14mu} 2} )\end{matrix}$

where

-   -   Pseudorange (t−m) is the Pseudorange 6 range value associated        with Measurement Time 7 “t−m”;    -   Pseudorange (t-m+1) is the Pseudorange 6 range value associated        with Measurement Time 7 “t-m+1”, and so on;    -   LookaheadRange(t+g) is the Lookahead Range Estimate 9 value        associated with Lookahead Time 10 “t+g”;    -   LookaheadRange(t+g+1) is the Lookahead Range Estimate 9 value        associated with Lookahead Time 10 “t+g+1”, and so on;    -   g is the size of Lookahead Gap 12.

Equation 2 can be expressed in matrix shorthand as equation 3:

[R]=[T][C]  (eq.3)

In the preferred embodiment there are many more equations than unknownsand thus matrix [T] represents the overdetermined case and hasfull-rank. Therefore the optimal least-squares solution for thecoefficient vector [C] may be determined using, e.g., principlesoutlines in Planetmath.org, online reference for Pseudoinverse,http://planetmath.org/encyclopedia/MoorePenrosePseudoinverse2.html,incorporated herein by reference as equation 4:

[T] ⁺ [R]=[C]  (eq. 4)

where [T]⁺ is the pseudoinverse of [T] and [C] is the set of polynomialcoefficients that form a least-squares fit of the model to the data.

Persons skilled in the art will recognize that there are manymathematical methods available to compute the pseudoinverse of a matrix.

In one preferred embodiment a new polynomial model is derived after eachadvancement of the Observation Window 8 (and, in lockstep, theadvancement of the Lookahead Window 11), which typically corresponds tothe receipt of a new value of the Pseudorange 6 and its associatedMeasurement Time 7 value. Having derived the model, determination of amodeled value for its range variable is accomplished by evaluating themodel polynomial according to polynomial evaluation principles known inthe art, with its time variable set to a desired value.

Note that present principles can estimate the satellite range in betweenthe times when measurements of those ranges exist. Moreover, contrary toprior teachings that such models diverge quickly and thus fail when usedfor interpolation near the endpoints of the measured data, or forextrapolation into the future, present principles understand that thispredicted shortcoming can be avoided. Specifically, first observe thatRange vs Time pair 13 consists of a set of measured value pairs spanningtime from the past through the present (Pseudorange 6 and associatedMeasurement Times 7), a temporal gap in the value pairs (Lookahead Gap12), and a set of estimated value pairs spanning a period of time in thefuture (Lookahead Ranges Estimated 9 and associated Lookahead Times 10).When present principles are used to model the data near the “newest” endof measurements in Observation Window 8, or to extrapolate to times inthe future that fall within Lookahead Gap 12 or Lookahead Window 11(beyond the end of the measured data), the models are well-behavedbecause they are stabilized by the presence of estimated future data, orbecause they are interpolating between measured data and estimated data,respectively. In the GNSS preferred embodiment the need forextrapolation beyond the end of the measured data seldom extends morethan approximately 60 seconds into the future. Because the Lookahead Gap12 in the preferred embodiment is on the order of 30 minutes in length,the net result is excellent extrapolation of the measured data over thedesired extrapolation period owing to the use of reasonably accurate(since derived from predictable parameters) estimates of future data.The degree to which the interpolated range values will agree with actualfuture measured values of Pseudorange 6 is, of course, strongly relatedto the quality of the estimate used to create Lookahead Ranges Estimated9.

In addition, the use of a model that does not force the model responseto pass through the measurement points promotes error reduction bysmoothing measurement errors.

Having derived the polynomial regression model as described above, datacompression is achieved by replacing the raw measurement data with thecoefficients of the model that describes them. For example, in thepreferred embodiment Observation Window 8 might span 4 minutes,Lookahead Gap 12 might span 30 minutes, and Lookahead Window 11 mightspan 4 minutes. If the data that occupy Observation Window 8 are sampledat 1-second intervals, then Observation Window 8 contains 240 rangevalues. The preferred embodiment polynomial order is 5, thus sixpolynomial coefficients replace 240 range values. However, thepolynomial model does not only describe the data within ObservationWindow 8; it can also be used to describe extrapolated data withinLookahead Gap 12 (1800 samples), and, under appropriate circumstances,even within Lookahead Window 11 (240 samples). Thus, in the preferredembodiment six polynomial coefficients can potentially replace 2280range samples.

In cases where a completely lossless representation of the range sampledata is necessary, the model coefficients can be accompanied by a set ofvalues representing the difference between the actual measurement ateach measurement time and the model evaluated at that same time. Suchresidual values are herein referred to as “nonces”. “Nonce” is a termfrom the cryptography field, where it describes a value created for usejust one time. As the nonce values are typically very much smaller inmagnitude than their associated measured range values, and can thereforebe represented with fewer bits, data compression is achieved even in thelossless case. And, optionally, the nonce data can be updated at themeasurement rate while the polynomial coefficients are updated at aslower rate, reducing the computational load and compressing the dataeven further by requiring the exchange of still fewer bits.

In cases where multiple Signals 1 are transmitted from TransmittingDevice 2 to Receiving Device 3, further data compression can be achievedby modeling pseudoranges derived from one of the signals, and thencomputing nonces representing differences between evaluation of themodel associated with that one signal and the raw pseudorangemeasurements associated with each of the other signals. In this case,the model coefficients can be accompanied by multiple noncesrepresenting the non-modeled signals, in addition to each noncerepresenting the modeled signal, resulting in lossless representationsof measurements derived from all of the signals. In one exemplaryembodiment, the separate code and carrier signals from a single GNSSsatellite can be modeled such that one signal is represented as themodel of the other signal plus a set of nonce values.

Another useful characteristic of the preferred embodiment implementationas a polynomial model is the ability to estimate derivatives. In theGNSS field it is often necessary to estimate range-rate, for example inthe computation of Doppler or Sagnac effects, in addition to range.Range-rate represents the rate of change of range with respect to time,and is trivially easy to extract from the preferred embodiment model bycomputing the first derivative of the model polynomial with respect totime by conventional means well-known in the art, and then evaluatingthat first derivative at the specific times of interest. Relativeacceleration and other higher-order derivatives can, of course, becomputed by repeated applications of the same process. In this respectpresent principles continue to compute the derivative(s) not only atpast and present time points within the Observation Window 8, but alsoat future time points within the Lookahead Gap 12 and even withinLookahead Window 11.

Furthermore, it may now be appreciated that the derivatives at timesnear the end of the Observation Window 8 and within the Lookahead Gap 12are well-behaved because of the stabilizing influence of the estimateddata in the Lookahead Window 11.

Another useful characteristic of the preferred embodiment implementationas a polynomial model is that model's ability to predict futureconfigurations of itself. This is a mathematical characteristic exposedby the particular manner in which the preferred embodiment modelpolynomial is formulated, and is explained below.

Returning to equation 1:

Range(t)=C _(n)((t−t ₀)/t _(n))^(n) +C _(n-1)((t−t ₀)/t _(n))^(n-1) + .. . +C ₂((t−t ₀)/t _(n))² +C ₁((t−t ₀)/t _(n))+C ₀  (repeat eq.1)

If empirical scaling constants to and to are ignored for the moment,then equation 1 takes the generic form shown in equation 5:

y(t)=C _(n) t ^(n) +C _(n-1) t ^(n-1) + . . . +C ₂ t ² +C ₁ t+C ₀  (eq.5)

If a change-of-origin is applied to equation 5, such that the origin ismoved from (0,0) to (−Δt,0), then the resulting polynomial for the sameequation, at the new origin, becomes as in equation 6:

y(t)=C _(n)(t+Δt)^(n) +C _(n-1)(t+Δt)^(n-1) + . . . +C ₂(t+Δt)² ±C₁(t+Δt)+C ₀  (eq. 6)

If a new polynomial, equation 7, is defined as:

y(t)= C _(n) t ^(n) +C _(n-1) t ^(n-1) + . . . +C ₂ t ² +C ₁ t+C₀  (eq.7)

. . . and equation 7 is set equal to equation 6 as indicated in equation8:

C _(n) t ^(n) +C _(n-1) t ^(n-1) + . . . +C ₂ t ² +C ₁ t+C ₀ =C_(n)(t+Δt)^(n) +C _(n-1)(t+Δt)^(n-1) + . . . +C ₂(t+Δt)² +C ₁(t+Δt)+ C₀  (eq.8)

. . . then expanding the binomial powers and combining like termsresults in equation 9:

$\begin{matrix}{{{\overset{\_}{C}}_{0} = {( {{terms}\mspace{14mu} {in}\mspace{14mu} {higher}\mspace{14mu} {powers}\mspace{14mu} {of}\mspace{14mu} \Delta \; t} ) + {C_{1}( {\Delta \; t} )} + C_{0}}}{{\overset{\_}{C}}_{1} = {( {{terms}\mspace{14mu} {in}\mspace{14mu} {higher}\mspace{14mu} {powers}\mspace{14mu} {of}\mspace{14mu} \Delta \; t} ) + {2{C_{2}( {\Delta \; t} )}} + C_{1}}}{{\overset{\_}{C}}_{2} = {( {{terms}\mspace{14mu} {in}\mspace{14mu} {higher}\mspace{14mu} {powers}\mspace{14mu} {of}\mspace{14mu} \Delta \; t} ) + {3{C_{3}( {\Delta \; t} )}} + C_{2}}}\vdots {{\overset{\_}{C}}_{n - 1} = {( {{terms}\mspace{14mu} {in}\mspace{14mu} {higher}\mspace{14mu} {powers}\mspace{14mu} {of}\mspace{14mu} \Delta \; t} ) + {{nC}_{n}( {\Delta \; t} )} + C_{n - 1}}}{{\overset{\_}{C}}_{n} = C_{n}}} & ( {{eq}.\mspace{14mu} 9} )\end{matrix}$

Solving for the slopes of C₀, C₁, . . . , C_(n-1) with respect to Δtrequires computing the limit of the terms in equation 9 as Δt approacheszero, in a conventional manner well-known in the art, resulting in theexpressions in equation 10:

$\begin{matrix}{{{{slope}( C_{0} )} = {{\lim\limits_{{\Delta \; t}arrow 0}\frac{{\overset{\_}{C}}_{0} - C_{0}}{\Delta \; t}} = {\frac{( {{terms}\mspace{14mu} {in}\mspace{14mu} {higher}\mspace{14mu} {powers}\mspace{14mu} {of}\mspace{14mu} \Delta \; t} ) + {C_{1}( {\Delta \; t} )} + C_{0} - C_{0}}{\Delta \; t} = C_{1}}}}{{{slope}( C_{1} )} = {{\lim\limits_{{\Delta \; t}arrow 0}\frac{{\overset{\_}{C}}_{1} - C_{1}}{\Delta \; t}} = {\frac{( {{terms}\mspace{14mu} {in}\mspace{14mu} {higher}\mspace{14mu} {powers}\mspace{14mu} {of}\mspace{14mu} \Delta \; t} ) + {2{C_{2}( {\Delta \; t} )}} + C_{1} - C_{1}}{\Delta \; t} = {2C_{2}}}}}{{{slope}( C_{2} )} = {{\lim\limits_{{\Delta \; t}arrow 0}\frac{{\overset{\_}{C}}_{2} - C_{2}}{\Delta \; t}} = {\frac{( {{terms}\mspace{14mu} {in}\mspace{14mu} {higher}\mspace{14mu} {powers}\mspace{14mu} {of}\mspace{14mu} \Delta \; t} ) + {3{C_{3}( {\Delta \; t} )}} + C_{2} - C_{2}}{\Delta \; t} = {3C_{3}}}}}\vdots {{{slope}( C_{n - 1} )} = {{\lim\limits_{{\Delta \; t}arrow 0}\frac{{\overset{\_}{C}}_{n - 1} - C_{n - 1}}{\Delta \; t}} = {\frac{( {{terms}\mspace{14mu} {in}\mspace{14mu} {higher}\mspace{14mu} {powers}\mspace{14mu} {of}\mspace{14mu} \Delta \; t} ) + {{nC}_{n}( {\Delta \; t} )} + C_{n - 1} - C_{n - 1}}{\Delta \; t} = {nC}_{n}}}}{{{slope}( C_{n} )} = {{\lim\limits_{{\Delta \; t}arrow 0}\frac{{\overset{\_}{C}}_{n} - C_{n}}{\Delta \; t}} = {\frac{C_{n} - C_{n}}{\Delta \; t} = 0}}}} & ( {{eq}.\mspace{14mu} 10} )\end{matrix}$

The interpretation of these results is as follows: at any given point intime, C1 is a representation of the slope of C0, C2 is a representationof the slope of C1, C3 is a representation of the slope of C2, and soon. This means that the polynomials used in the preferred embodimentform a State Space description of the system represented by thepreferred embodiment model.

It also means that the state of the model polynomial (the values of thecoefficients in vector [C]) at any point in time can, after applicationof some simple assumptions, predict the future state of the system(future values of the coefficients in vector [C]) by integrating theState Equations shown in equation 11:

$\begin{matrix}{{{x(t)} = \begin{bmatrix}{C_{0}(t)} \\{C_{1}(t)} \\{C_{2}(t)} \\{C_{3}(t)} \\\vdots \\{C_{n}(t)}\end{bmatrix}}{{\overset{.}{x}(t)} = {\begin{bmatrix}{{\overset{.}{C}}_{0}(t)} \\{{\overset{.}{C}}_{1}(t)} \\{{\overset{.}{C}}_{2}(t)} \\{{\overset{.}{C}}_{3}(t)} \\\vdots \\{{\overset{.}{C}}_{n}(t)}\end{bmatrix} = {\begin{bmatrix}{1 \cdot {C_{1}(t)}} \\{2 \cdot {C_{2}(t)}} \\{3 \cdot {C_{3}(t)}} \\{4 \cdot {C_{4}(t)}} \\\vdots \\{{slope}( {C_{n}(t)} )}\end{bmatrix} = {{{\begin{bmatrix}0 & 1 & 0 & 0 & \cdots & 0 \\0 & 0 & 2 & 0 & \cdots & 0 \\0 & 0 & 0 & 3 & \cdots & 0 \\0 & 0 & 0 & 0 & \cdots & 0 \\\vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\0 & 0 & 0 & 0 & \cdots & 0\end{bmatrix} \cdot \begin{bmatrix}{C_{0}(t)} \\{C_{1}(t)} \\{C_{2}(t)} \\{C_{3}(t)} \\\vdots \\{C_{n}(t)}\end{bmatrix}} + \begin{bmatrix}0 \\0 \\0 \\0 \\\vdots \\{C_{n}(t)}\end{bmatrix}} = {{A \cdot {x(t)}} + {B \cdot {u(t)}}}}}}}} & ( {{eq}.\mspace{14mu} 11} )\end{matrix}$

Formulation and integration of the State Equations, above, may beeffected by known means such as those described by Rowell, MIT CourseNotes for Analysis and Design of Feedback Control Systems. “State-SpaceRepresentation of LTI Systems”,web.mit.edu/2.14/www/Handouts/StateSpace.pdf incorporated herein byreference. Note that using equation (11), the rover can, from receivinga derivative or slope of the highest order coefficient, propagate themodel forward in time. In other words, in some embodiments only theslope (derivative) of the highest order coefficient is sent from thereference station to the rover as a further form of data compression.

The only unknown in the equation 11 is slope(C_(n)(t)) (the slope of thecurve representing coefficient C_(n)), which means that slope(C_(n)(t))is the single driving-point for the entire system. If suitable estimatesfor the values of slope(C_(n)(t)) are applied in equation 11 (instead ofusing “0” as implied by equation 10), then estimates for the futurestate of the entire rest of the system—all of the coefficientswill—automatically follow trajectories that are entirely consistent andappropriate, and the preferred embodiment polynomial will havesuccessfully predicted its own future.

Persons skilled in the art will recognize that many suitable means toestimate slope(C_(n)(t)) in equation 11 exist, including but not limitedto observation of historical values of C_(n)(t) and application ofsimple trend line analysis and subsequent extrapolation; polynomial ortrigonometric modeling of historical values of C_(n)(t) and subsequentextrapolation; and similar methods. FIG. 8 shows an exemplary situation,using actual measured data, in which the value of C₅ (t) (C_(n)(t) in a5^(th)-order context) is plotted as a function of time. The regressionline at various time points is superimposed upon the plot of C₅(t). Inthis case each regression line is determined by trend line analysis ofthe current and most recent 1799 data points (one-half hour into thepast). It is readily apparent from the slope of the regression linesthat “zero” is seldom an appropriate value for slope(C_(n)(t)).

Now referring to FIG. 9, an example system 100 that can be used toimplement principles above includes one or more navigation satellites102 located in space above the Earth and one or more reference stations104 that typically are immovably disposed at known, unchanging locationson the Earth. One or more mobile platforms, hereinafter rovers 106, arealso included in the system 100. Both the reference station 104 androver 106 receive position signals from the satellite 102 throughrespective satellite receivers 108, 110 sending signals to respectiveprocessors 112, 114 accessing instructions contained on one morerespective computer readable storage media 116, 118 such as disk-basedor solid state storage to execute logic according to present principles.As set forth above and explained further below, the reference station104 extracts distance measurements from the signal it receives from thesatellite 102 and sends, via a suitable transceiver 120 indications ofthose measurements to a communication interface 122 of the rover 106 sothat the rover processor 114 can quantify errors in the measurements ofdistance between satellite 102 and reference station 104, and applycorrections for those errors its own position as determined from thesignal from the satellite 102. In some embodiments the reference station104 may be embodied as a computer that includes a display 124 controlledby the processor 112 and an input device assembly 126 such as keyboards,mice, etc. for sending user input to the processor 112. Likewise, therover 106 may be embodied as a computer in, e.g., a mobile platform suchas a telephone, a vehicle, etc. that includes a display 128 controlledby the processor 114 and an input device assembly 130 such as keyboards,mice, etc. for sending user input to the processor 114.

FIG. 10 illustrates principles discussed above in flow chart format togive a non-limiting example of computer program instructions that may bestored on a computer readable storage medium for execution by aprocessor, in this case, the processor 112 of the reference station 104.Commencing at block 132, the above-described observation window isestablished of past distances (also referred to as “ranges”) along withthe respective times at which the distances were attained between thereference station 104 and satellite 102. Moving to block 134, futureestimated distances between the reference station 104 and satellite 102with respective times are obtained by one or more of the exemplarymethods described above (e.g., by ephemeris data, orbital data, etc.)and then at block 136 the Lookahead window is established using thefuture estimated distances and times from block 134. Using therange-time pairs from both windows, at block 138 a numerical model isderived for each pair. The model output, in the preferred example in theform of polynomial coefficients in some cases accompanied by nonces, issent to the rover 106 at block 140. Or, after an initial complete set ofcoefficients has been sent to the rover 106, the slope (derivative) ofthe highest order polynomial coefficient may afterward be sent in lieuof the coefficients and then integrated at the rover to propagate thecoefficients, compressing data even further.

Example rover 106 logic is shown in FIG. 11, in which, at block 142, therover 106 receives from the reference station 104 the modelcoefficients, which represent range information to be utilized at block144 to correct pseudorange measurements between satellite 102 and rover106. In the preferred embodiment the rover processor 114 has knowledgeof the general model (e.g., n^(th) order polynomial) used by thereference station and so can simply reverse the process undertaken bythe reference station and evaluate the model represented by thecoefficients received from the reference station to yield arepresentation of the measured distance between the satellite and thereference station. In block 145 the rover computes its position usingthe computed ranges from several satellites.

In greater detail with respect to block 144, by accounting fordifferences between signals received both at the reference station andat the remote rover, common-mode errors are effectively eliminated. Thisfacilitates an accurate determination of the rover's coordinatesrelative to the reference station's coordinates. When the referencestation's coordinates are kinematic (such as the case of nearbyoperating rovers/vehicles exchanging data), this further facilitates anaccurate determination of position of each vehicle relative to theother.

Recall that in a differentially corrected system the precise position ofthe reference station is known and sent to the rover, so the precisesatellite-to-reference-station distance can be computed and determinedby the rover. From the set of measured satellite-to-reference stationpseudoranges (and the location) and the set of measuredsatellite-to-rover pseudoranges, the rover can determine the common modeerrors observed on the measurements that both it and the referencestation observe on each satellite and resolve its own location with muchgreater precision. The details of this process are well known to thoseskilled in the art.

Noteworthy in block 144 is the fact that the model yields arepresentation of the measured distance between the satellite and thereference station, not the error in that distance. If the model yieldeda representation of the error, then the rover would be required to useexactly the same satellite ephemeris data as the reference station, inorder to avoid corruption of the error corrections by potentiallysignificant differences between ephemerides. But since the model yieldsa representation of the measured distance, the rover is free to utilizeany ephemeris data to which it has access. There are conceivableembodiments in which the rover has access to different or better qualityephemerides than does the reference station, and these situations areautomatically accommodated by the present invention.

Thus, transmitting the raw observed pseudorange measurements of eachsatellite from the reference station, as well as the reference stationlocation in a common coordinate system to the rover, is all that isneeded in order to compute the corrections for the rover. Alternatively,the reference station can compute its own position based solely on itsown measurements, compare this result to its a priori known position,and use this to determine the corrections. In still other commonembodiments, the determination of the rover position from this dataoccurs at a third location as suits the application.

The need for constantly transmitting this measurement or correctionsdata heretofore has required significant data transfers and stresses thelimited-bandwidth channels. And the rover is subject to operatingdisruptions whenever such transmissions are disturbed. It is the objectof present principles to overcome these limitations by an effective formof compression by substituting parameters of the present models for theraw measurements which can then be reconstructed at will for themeasurement moment of interest to the rover.

FIG. 12 provides an example flow chart of more detailed logic that maybe used by the reference station 104 to generate model outputs for useas error correction information by the rover 106. Commencing at block146, for each temporal slide or hop of the windows discussed above, thelogic moves to block 148 in which each range/time pair in both windows(past history in the Observation Window and future estimatedranges/times in the Lookahead Window) are described using, as anexample, the polynomial described above. The result, as indicated atblock 150, is a set of simultaneous equations set forth previously. Atechnique such as the use of least squares fitting may be applied atblock 152 to obtain polynomial coefficients that represent the rawrange/time data. At block 154 only the coefficients, but not theunderlying raw range/time data, are sent to the rover 106. If desired,along with the coefficients the residual differences between themeasured pseudoranges and the ranges obtained by evaluation of the modelmay be sent to the rover 106. At the rover, an evaluation of themathematical model represented by the coefficients or parameters at ameasurement time are added to the residual value to form a losslessrepresentation of the associated measurement.

In addition to the above, the following references are incorporatedherein: U.S. Pat. No. 7,579,984; U.S. Pat. No. 8,134,499; “A briefreview of basic GPS orbit interpolation strategies”, Mark Schenewerk,GPS Solution 2003 6: 265-267; and “Using Interpolation and ExtrapolationTechniques to Yield High Data Rates and Ionosphere Delay Estimates fromContinuously Operating GPS Networks”, Gerald L. Mader and Michael L.Morrison, ION GPS 2002, 24-27 Sep. 2002, Portland, Oreg.

While the particular Method and Apparatus for Modeling of GNSSPseudorange Measurements for Interpolation, Extrapolation, Reduction ofMeasurement Errors, and Data Compression is herein shown and describedin detail, it is to be understood that the subject matter which isencompassed by the present invention is limited only by the claims.

1. A method by which a mathematical model is derived from a time historyof past and present values of a distance between two objects combinedwith a time history of estimates of future values of said distancebetween said two objects, the method comprising: a. recording aplurality of measurements of distances between said two objects andtimes at which said distances occur and storing said measurements andmeasurement times in a memory device; b. creating a plurality ofestimates of future distances between said two objects and times atwhich said estimates are expected to occur, and storing said estimatesand times in a memory device; and c. fitting a mathematical model tosaid plurality of measurements of distances and said plurality ofestimates of future distances, together treated as a single compositetime history of distance between said two objects without regard forwhether individual distances are measured or estimated.
 2. The method ofclaim 1, wherein: a. a first one of the two objects is designated as atransmitting device, and b. a second one of the two objects isdesignated as a receiving device, and c. the measurements of distancesbetween said transmitting device and said receiving device, and thetimes at which the measurements occur, are derived from one or moresignals transmitted from said transmitting device to said receivingdevice.
 3. The method of claim 2 in which the transmitting device alsofunctions as a receiving device, and in which the receiving device alsofunctions as a transmitting device, and in which at least two signalsare mutually exchanged, at least one from each of the transmittingdevice and the receiving device to the other.